const Router = require("koa-Router");
const router = new Router();
const OSS = require("ali-oss");

// 医生模块
const doctor = require("./controller/doctor");
// 药品模块
const medicine = require("./controller/medicine");
// 医院模块
const hospital = require("./controller/hospital");
// 患者模块
const patient = require("./controller/patient");
// 科室模块
const department = require("./controller/department");
// 登录模块
const user = require("./controller/user");
// 公用模块
const public = require("./controller/public");

/***********************医生模块***********************/
/***********************医生模块***********************/
/***********************医生模块***********************/
// 获取医生数据
router.get('/getdoctorlist', doctor.getdoctorlist)
// 获取医生所属的大科目的数据
router.get('/getadmin', doctor.getadmin)
// 获取医生所属的大科目下的小数据
router.get('/getadminchildred', doctor.getadminchildred)
// 获取医生所属的职位
router.get('/getposition', doctor.getposition)
// 添加医生数据
router.post('/addgetdoctorlist', doctor.Adddoctorlist)
// 修改医生数据
router.put('/updateddoctorlist', doctor.Updateddoctorlist)
// 删除医生数据
router.delete('/deldoctorlist', doctor.Deldoctorlist)
/***********************医生模块***********************/
/***********************医生模块***********************/
/***********************医生模块***********************/



/***********************药品模块***********************/
/***********************药品模块***********************/
/***********************药品模块***********************/
// 获取药品数据
router.get('/getMedicine', medicine.getMedicine)
// 获取药品的大类型
router.get('/getMedicineType', medicine.getMedicineType)
// 获取药品大类型下的小类型
router.get('/getMedicineTypes', medicine.getMedicineTypes)
// 添加药品数据
router.post('/addmedicinelist', medicine.addmedicinelist)
// 删除或者说是下架药品
router.delete('/delmedicinelist', medicine.delmedicinelist)
// 修改药品数据
router.put('/Updateinventory', medicine.updateinventory)
/***********************药品模块***********************/
/***********************药品模块***********************/
/***********************药品模块***********************/



/***********************医院模块***********************/
/***********************医院模块***********************/
/***********************医院模块***********************/
// 获取医院数据
router.get('/getsoco', hospital.getsoco)
// 获取医院的等级
router.get('/getsocolv', hospital.getsocolv)
// 添加医院数据
router.post('/addsocolist', hospital.addsocolist)
// 删除医院数据
router.delete('/delsocolist', hospital.delsocolist)
// 修改医院的数据
router.put('/updatesocolist', hospital.updatesocolist)
/***********************医院模块***********************/
/***********************医院模块***********************/
/***********************医院模块***********************/



/***********************患者模块***********************/
/***********************患者模块***********************/
/***********************患者模块***********************/
// 获取患者数据
router.get('/getpatient', patient.getpatient)
// 添加患者数据
router.post('/addpatient', patient.addpatient)
// 删除患者数据
router.delete('/delpatient', patient.delpatient)
// 修改患者的数据
router.put('/updatepatient', patient.updatepatient)
/***********************患者模块***********************/
/***********************患者模块***********************/
/***********************患者模块***********************/



/***********************科室模块***********************/
/***********************科室模块***********************/
/***********************科室模块***********************/
// 获取科室数据
router.get('/getalldepartment', department.getalldepartment)
/***********************科室模块***********************/
/***********************科室模块***********************/
/***********************科室模块***********************/



/***********************登录模块***********************/
/***********************登录模块***********************/
/***********************登录模块***********************/
// 注册
router.post('/register', user.Register)
// 登录
router.post('/login', user.login)
// 验证码登录 
router.post('/codelogin', user.codelogin)
// 获取验证码
router.post('/getcode', user.PhoneCode)
// 修改用户名
router.put('/uploadnicjname', user.uploadnickname)
// 修改头像
router.put('/uploadavatar', user.uploadavatar)
// 修改密码
router.put('/uploadpassword', user.uploadpassword)
// 注销账号
router.delete('/lologoffo', user.logoff)
/***********************登录模块***********************/
/***********************登录模块***********************/
/***********************登录模块***********************/



/*********************** 公用模块 ***********************/
/*********************** 公用模块 ***********************/
/*********************** 公用模块 ***********************/
// 获取中国的省份不全
router.get('/getprovince', public.getprovince)
// 获取中国省下的市不全
router.get('/getcity', public.getcity)
// 获取中国省下的市下的县不全
router.get('/getcounty', public.getcounty)
/*********************** 公用模块 ***********************/
/*********************** 公用模块 ***********************/
/*********************** 公用模块 ***********************/

// 上传前置
const client = new OSS({
    // yourregion填写Bucket所在地域。以华东1（杭州）为例，Region填写为oss-cn-hangzhou。
    region: "oss-cn-beijing",
    // 从环境变量中获取访问凭证。运行本代码示例之前，请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
    accessKeyId: "LTAI5tH548wQfSHQ7UwNzk7i",
    accessKeySecret: "N9Zh4ed9mkRwdNT0UfpInl5NF42Kik",
    // 填写Bucket名称。
    bucket: "liuhaoaa",
});
// 上传
router.post("/upload", async (ctx) => {
    let file = ctx.request.files.file;
    try {
        // 填写OSS文件完整路径和本地文件的完整路径。OSS文件完整路径中不能包含Bucket名称。
        // 如果本地文件的完整路径中未指定本地路径，则默认从示例程序所属项目对应本地路径中上传文件。
        const result = await client.put(file.originalFilename, file.filepath);
        ctx.body = {
            code: 200,
            msg: "上传成功",
            url: result.url,
        };
    } catch (e) {
        ctx.body = {
            code: 401,
            msg: "上传失败",
        };
    }
});

module.exports = router;